\section{\Arrays}
\label{arrays}

\RU{Массив это просто набор переменных в памяти, 
обязательно лежащих рядом и обязательно одного типа%
\footnote{\ac{AKA} \q{гомогенный контейнер}}.}
\EN{An array is just a set of variables in memory 
that lie next to each other and that have the same type%
\footnote{\ac{AKA} \q{homogeneous container}}.}
\DEph{}

% sections
\input{patterns/13_arrays/1_simple/main}
\input{patterns/13_arrays/2_BO/main}

\EN{\input{patterns/13_arrays/3_BO_protection/main_EN}}
\RU{\input{patterns/13_arrays/3_BO_protection/main_RU}}
\DE{\input{patterns/13_arrays/3_BO_protection/main_DE}}

\EN{\input{patterns/13_arrays/4_one_more_thing/main_EN}}
\RU{\input{patterns/13_arrays/4_one_more_thing/main_RU}}
\DE{\input{patterns/13_arrays/4_one_more_thing/main_DE}}

\EN{\input{patterns/13_arrays/45_month_1D/main_EN}}
\RU{\input{patterns/13_arrays/45_month_1D/main_RU}}
\DE{\input{patterns/13_arrays/45_month_1D/main_DE}}

\EN{\input{patterns/13_arrays/5_multidimensional/main_EN}}
\RU{\input{patterns/13_arrays/5_multidimensional/main_RU}}
\DE{\input{patterns/13_arrays/5_multidimensional/main_DE}}

\EN{\input{patterns/13_arrays/55_month_2D/main_EN}}
\RU{\input{patterns/13_arrays/55_month_2D/main_RU}}
\DE{\input{patterns/13_arrays/55_month_2D/main_DE}}

\EN{\input{patterns/13_arrays/conclusion_EN}}
\RU{\input{patterns/13_arrays/conclusion_RU}}
\DE{\input{patterns/13_arrays/conclusion_DE}}

\myindex{Hex-Rays}

\RU{\section{Кстати}
Итак, указатель на массив и адрес первого элемента --- это одно и то же.
Вот почему выражения \TT{ptr[0]} и \TT{*ptr} в \CCpp равноценны.
Любопытно что Hex-Rays часто заменяет первое вторым.
Он делает это в тех случаях, когда не знает, что имеет дело с указателем на целый массив,
и думает, что это указатель только на одну переменную.}%
\EN{\section{By the way}
So, pointer to an array and address of a first element---is the same thing.
This is why \TT{ptr[0]} and \TT{*ptr} expressions are equivalent in \CCpp.
It's interesting to note that Hex-Rays often replaces the first by the second.
It does so when it have no idea that it works with pointer to the whole array,
and thinks that this is a pointer to single variable.}
\DEph{}

\input{patterns/13_arrays/exercises}
